﻿using Windows.UI.Xaml.Controls;

namespace MicroMVVM.Interfaces
{
    public interface IVisualStateManager
    {
        /// <summary>
        /// Gets the current visual state.
        /// </summary>
        string State { get; }

        /// <summary>
        /// Changes the visual state of the page to the one specified as parameter.
        /// </summary>
        /// <param name="stateName">Visual State name</param>
        /// <returns>True/False</returns>
        bool GoToVisualState(string stateName);

        /// <summary>
        /// Changes visual state of the specified control.
        /// </summary>
        /// <param name="control">Control</param>
        /// <param name="stateName">Visual State name</param>
        /// <param name="useTransitions">Uses transitions</param>
        /// <returns>True/False</returns>
        bool GoToVisualState(Control control, string stateName, bool useTransitions);
    }
}